package com.ctshk.rpc.system.service;

import com.ctshk.common.dto.Result;
import com.ctshk.common.model.PageResponse;
import com.ctshk.rpc.system.dto.SysMessageDTO;
import com.ctshk.rpc.system.dto.SysMessageTotalDTO;
import com.ctshk.rpc.system.req.SysMessageListIdReq;
import com.ctshk.rpc.system.req.SysMessageQueryReq;
import com.ctshk.rpc.system.req.SysMessageReq;

import java.util.List;

/**
 * <p>
 * 系统消息表 服务类
 * </p>
 *
 * @author 谢诗宏
 * @since 2020-12-28
 */
public interface ISystemMessageService{

    /**
     * 新增消息表
     * @param sysDepartmentReq 消息入参
     * @param userId 用户id
     */
    Result add(SysMessageReq sysMessageReq, Long userId);

    /**
     * 新增消息表
     * @param sysDepartmentReq 消息入参
     * @param userId 用户id
     */
    Result addAll(List<SysMessageReq> reqs, Long userId);

    /**
     * 批量已读接口
     * @param sysMessageListIdReq id列表
     * @param usrId 用户id
     */
    Result read(SysMessageListIdReq sysMessageListIdReq, Long usrId);


    /**
     * 已读接口
     * @param id id
     * @param usrId 用户id
     */
    Result read(Long id, Long usrId);

    /**
     * 查询消息列表
     * @param sysMessageQueryReq 消息入参
     * @param userId 用户id
     * @return 消息列表
     */
    PageResponse<SysMessageDTO> queryList(SysMessageQueryReq sysMessageQueryReq, Long userId);

    /**
     * 删除消息列表
     * @param sysMessageListIdReq id列表
     * @param userId 用户id
     */
    Result delete(SysMessageListIdReq sysMessageListIdReq, Long userId);

    /**
     * 查询待办和未读条数
     * @return SysMessageTotalDTO
     * @param userId 用户id
     */
    SysMessageTotalDTO getReadTotal(Long userId);

	/**全部标为已读
	 * @param userId
	 */
    Result setAllRead(Long userId);
}
